Сценарии
Редактировал(а) Alexandr Fokin 2024/04/22 12:09
Запустить задачу сейчас | public async Task TryRunNowWorkerAsync( string name, CancellationToken cancellationToken ) { var jobKey = /* .. */; // Проверка кол-ва сузествующих триггеров, // если их больше определенного кол-ва, // то нет смысла создавать еще один триггер-запуска. { var triggers = await scheduler.GetTriggersOfJob(jobKey, cancellationToken); if (triggers.Count > n) { return; } } // Создает триггер одноразового запуска. await scheduler.TriggerJob(jobKey, cancellationToken); } | При InMemory хранилище внутри используются блокировки. Поэтому при высокой интенсивности лучше сделать отдельный поток (Task), который будут накапливать заявки и периодически запускаться. При этом так, чтобы запись заявки была быстрой и неблокирующей. |